package com.lfm.customgeneric;

import java.util.ArrayList;

public class CustomMethodGeneric {
    public static void main(String[] args) {
        Car car = new Car();
        car.fly("BMW" ,100);//当调用方法时， 传入参数， 编译器就会确定类型

        car.fly(new ArrayList(), 11.3f);
    }
}

//泛型方法， 可以定义在普通类中，也可以定义在泛型类中

class Car {//普通类
    public void run() {//普通方法


    }
    //说明
    //1. <T, R> 就是泛型
    //2. 是提供给fly使用
    public <T, R> void fly(T t, R r) {//泛型方法
        System.out.println(t.getClass());
        System.out.println(r.getClass());
    }
}

class Fish<T, R> {
    public void run() {

    }

    public<U, M> void eat(U u, M m) {

    }
    //说明
    //1.这个方法不是泛型方法
    //2. 是hi()方法使用了类声明的泛型
    public void hi(T t) {

    }
    //泛型方法可以使用类声明的泛型，也可以使用自己声明泛型
    public <K> void hello(R r, K k) {

    }

}